/*
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public
    License as published by the Free Software Foundation; either
    version 2 of the license, or (at your option) any later version.
*/

package org.gjt.jclasslib.bytecode;

/**
 * Defines all opcodes and their verbose representation as well as the type codes
 * for the <tt>newarray</tt> instruction.
 *
 * @author <a href="mailto:jclasslib@ej-technologies.com">Ingo Kegel</a>
 * @version $Revision: 1.1 $ $Date: 2005/11/01 13:18:23 $
 */
public interface Opcodes {

    public static final int OPCODE_NOP = 0x00;
    public static final int OPCODE_ACONST_NULL = 0x01;
    public static final int OPCODE_ICONST_M1 = 0x02;
    public static final int OPCODE_ICONST_0 = 0x03;
    public static final int OPCODE_ICONST_1 = 0x04;
    public static final int OPCODE_ICONST_2 = 0x05;
    public static final int OPCODE_ICONST_3 = 0x06;
    public static final int OPCODE_ICONST_4 = 0x07;
    public static final int OPCODE_ICONST_5 = 0x08;
    public static final int OPCODE_LCONST_0 = 0x09;
    public static final int OPCODE_LCONST_1 = 0x0a;
    public static final int OPCODE_FCONST_0 = 0x0b;
    public static final int OPCODE_FCONST_1 = 0x0c;
    public static final int OPCODE_FCONST_2 = 0x0d;
    public static final int OPCODE_DCONST_0 = 0x0e;
    public static final int OPCODE_DCONST_1 = 0x0f;
    public static final int OPCODE_BIPUSH = 0x10;
    public static final int OPCODE_SIPUSH = 0x11;
    public static final int OPCODE_LDC = 0x12;
    public static final int OPCODE_LDC_W = 0x13;
    public static final int OPCODE_LDC2_W = 0x14;
    public static final int OPCODE_ILOAD = 0x15;
    public static final int OPCODE_LLOAD = 0x16;
    public static final int OPCODE_FLOAD = 0x17;
    public static final int OPCODE_DLOAD = 0x18;
    public static final int OPCODE_ALOAD = 0x19;
    public static final int OPCODE_ILOAD_0 = 0x1a;
    public static final int OPCODE_ILOAD_1 = 0x1b;
    public static final int OPCODE_ILOAD_2 = 0x1c;
    public static final int OPCODE_ILOAD_3 = 0x1d;
    public static final int OPCODE_LLOAD_0 = 0x1e;
    public static final int OPCODE_LLOAD_1 = 0x1f;
    public static final int OPCODE_LLOAD_2 = 0x20;
    public static final int OPCODE_LLOAD_3 = 0x21;
    public static final int OPCODE_FLOAD_0 = 0x22;
    public static final int OPCODE_FLOAD_1 = 0x23;
    public static final int OPCODE_FLOAD_2 = 0x24;
    public static final int OPCODE_FLOAD_3 = 0x25;
    public static final int OPCODE_DLOAD_0 = 0x26;
    public static final int OPCODE_DLOAD_1 = 0x27;
    public static final int OPCODE_DLOAD_2 = 0x28;
    public static final int OPCODE_DLOAD_3 = 0x29;
    public static final int OPCODE_ALOAD_0 = 0x2a;
    public static final int OPCODE_ALOAD_1 = 0x2b;
    public static final int OPCODE_ALOAD_2 = 0x2c;
    public static final int OPCODE_ALOAD_3 = 0x2d;
    public static final int OPCODE_IALOAD = 0x2e;
    public static final int OPCODE_LALOAD = 0x2f;
    public static final int OPCODE_FALOAD = 0x30;
    public static final int OPCODE_DALOAD = 0x31;
    public static final int OPCODE_AALOAD = 0x32;
    public static final int OPCODE_BALOAD = 0x33;
    public static final int OPCODE_CALOAD = 0x34;
    public static final int OPCODE_SALOAD = 0x35;
    public static final int OPCODE_ISTORE = 0x36;
    public static final int OPCODE_LSTORE = 0x37;
    public static final int OPCODE_FSTORE = 0x38;
    public static final int OPCODE_DSTORE = 0x39;
    public static final int OPCODE_ASTORE = 0x3a;
    public static final int OPCODE_ISTORE_0 = 0x3b;
    public static final int OPCODE_ISTORE_1 = 0x3c;
    public static final int OPCODE_ISTORE_2 = 0x3d;
    public static final int OPCODE_ISTORE_3 = 0x3e;
    public static final int OPCODE_LSTORE_0 = 0x3f;
    public static final int OPCODE_LSTORE_1 = 0x40;
    public static final int OPCODE_LSTORE_2 = 0x41;
    public static final int OPCODE_LSTORE_3 = 0x42;
    public static final int OPCODE_FSTORE_0 = 0x43;
    public static final int OPCODE_FSTORE_1 = 0x44;
    public static final int OPCODE_FSTORE_2 = 0x45;
    public static final int OPCODE_FSTORE_3 = 0x46;
    public static final int OPCODE_DSTORE_0 = 0x47;
    public static final int OPCODE_DSTORE_1 = 0x48;
    public static final int OPCODE_DSTORE_2 = 0x49;
    public static final int OPCODE_DSTORE_3 = 0x4a;
    public static final int OPCODE_ASTORE_0 = 0x4b;
    public static final int OPCODE_ASTORE_1 = 0x4c;
    public static final int OPCODE_ASTORE_2 = 0x4d;
    public static final int OPCODE_ASTORE_3 = 0x4e;
    public static final int OPCODE_IASTORE = 0x4f;
    public static final int OPCODE_LASTORE = 0x50;
    public static final int OPCODE_FASTORE = 0x51;
    public static final int OPCODE_DASTORE = 0x52;
    public static final int OPCODE_AASTORE = 0x53;
    public static final int OPCODE_BASTORE = 0x54;
    public static final int OPCODE_CASTORE = 0x55;
    public static final int OPCODE_SASTORE = 0x56;
    public static final int OPCODE_POP = 0x57;
    public static final int OPCODE_POP2 = 0x58;
    public static final int OPCODE_DUP = 0x59;
    public static final int OPCODE_DUP_X1 = 0x5a;
    public static final int OPCODE_DUP_X2 = 0x5b;
    public static final int OPCODE_DUP2 = 0x5c;
    public static final int OPCODE_DUP2_X1 = 0x5d;
    public static final int OPCODE_DUP2_X2 = 0x5e;
    public static final int OPCODE_SWAP = 0x5f;
    public static final int OPCODE_IADD = 0x60;
    public static final int OPCODE_LADD = 0x61;
    public static final int OPCODE_FADD = 0x62;
    public static final int OPCODE_DADD = 0x63;
    public static final int OPCODE_ISUB = 0x64;
    public static final int OPCODE_LSUB = 0x65;
    public static final int OPCODE_FSUB = 0x66;
    public static final int OPCODE_DSUB = 0x67;
    public static final int OPCODE_IMUL = 0x68;
    public static final int OPCODE_LMUL = 0x69;
    public static final int OPCODE_FMUL = 0x6a;
    public static final int OPCODE_DMUL = 0x6b;
    public static final int OPCODE_IDIV = 0x6c;
    public static final int OPCODE_LDIV = 0x6d;
    public static final int OPCODE_FDIV = 0x6e;
    public static final int OPCODE_DDIV = 0x6f;
    public static final int OPCODE_IREM = 0x70;
    public static final int OPCODE_LREM = 0x71;
    public static final int OPCODE_FREM = 0x72;
    public static final int OPCODE_DREM = 0x73;
    public static final int OPCODE_INEG = 0x74;
    public static final int OPCODE_LNEG = 0x75;
    public static final int OPCODE_FNEG = 0x76;
    public static final int OPCODE_DNEG = 0x77;
    public static final int OPCODE_ISHL = 0x78;
    public static final int OPCODE_LSHL = 0x79;
    public static final int OPCODE_ISHR = 0x7a;
    public static final int OPCODE_LSHR = 0x7b;
    public static final int OPCODE_IUSHR = 0x7c;
    public static final int OPCODE_LUSHR = 0x7d;
    public static final int OPCODE_IAND = 0x7e;
    public static final int OPCODE_LAND = 0x7f;
    public static final int OPCODE_IOR = 0x80;
    public static final int OPCODE_LOR = 0x81;
    public static final int OPCODE_IXOR = 0x82;
    public static final int OPCODE_LXOR = 0x83;
    public static final int OPCODE_IINC = 0x84;
    public static final int OPCODE_I2L = 0x85;
    public static final int OPCODE_I2F = 0x86;
    public static final int OPCODE_I2D = 0x87;
    public static final int OPCODE_L2I = 0x88;
    public static final int OPCODE_L2F = 0x89;
    public static final int OPCODE_L2D = 0x8a;
    public static final int OPCODE_F2I = 0x8b;
    public static final int OPCODE_F2L = 0x8c;
    public static final int OPCODE_F2D = 0x8d;
    public static final int OPCODE_D2I = 0x8e;
    public static final int OPCODE_D2L = 0x8f;
    public static final int OPCODE_D2F = 0x90;
    public static final int OPCODE_I2B = 0x91;
    public static final int OPCODE_I2C = 0x92;
    public static final int OPCODE_I2S = 0x93;
    public static final int OPCODE_LCMP = 0x94;
    public static final int OPCODE_FCMPL = 0x95;
    public static final int OPCODE_FCMPG = 0x96;
    public static final int OPCODE_DCMPL = 0x97;
    public static final int OPCODE_DCMPG = 0x98;
    public static final int OPCODE_IFEQ = 0x99;
    public static final int OPCODE_IFNE = 0x9a;
    public static final int OPCODE_IFLT = 0x9b;
    public static final int OPCODE_IFGE = 0x9c;
    public static final int OPCODE_IFGT = 0x9d;
    public static final int OPCODE_IFLE = 0x9e;
    public static final int OPCODE_IF_ICMPEQ = 0x9f;
    public static final int OPCODE_IF_ICMPNE = 0xa0;
    public static final int OPCODE_IF_ICMPLT = 0xa1;
    public static final int OPCODE_IF_ICMPGE = 0xa2;
    public static final int OPCODE_IF_ICMPGT = 0xa3;
    public static final int OPCODE_IF_ICMPLE = 0xa4;
    public static final int OPCODE_IF_ACMPEQ = 0xa5;
    public static final int OPCODE_IF_ACMPNE = 0xa6;
    public static final int OPCODE_GOTO = 0xa7;
    public static final int OPCODE_JSR = 0xa8;
    public static final int OPCODE_RET = 0xa9;
    public static final int OPCODE_TABLESWITCH = 0xaa;
    public static final int OPCODE_LOOKUPSWITCH = 0xab;
    public static final int OPCODE_IRETURN = 0xac;
    public static final int OPCODE_LRETURN = 0xad;
    public static final int OPCODE_FRETURN = 0xae;
    public static final int OPCODE_DRETURN = 0xaf;
    public static final int OPCODE_ARETURN = 0xb0;
    public static final int OPCODE_RETURN = 0xb1;
    public static final int OPCODE_GETSTATIC = 0xb2;
    public static final int OPCODE_PUTSTATIC = 0xb3;
    public static final int OPCODE_GETFIELD = 0xb4;
    public static final int OPCODE_PUTFIELD = 0xb5;
    public static final int OPCODE_INVOKEVIRTUAL = 0xb6;
    public static final int OPCODE_INVOKESPECIAL = 0xb7;
    public static final int OPCODE_INVOKESTATIC = 0xb8;
    public static final int OPCODE_INVOKEINTERFACE = 0xb9;
    public static final int OPCODE_XXXUNUSEDXXX = 0xba;
    public static final int OPCODE_NEW = 0xbb;
    public static final int OPCODE_NEWARRAY = 0xbc;
    public static final int OPCODE_ANEWARRAY = 0xbd;
    public static final int OPCODE_ARRAYLENGTH = 0xbe;
    public static final int OPCODE_ATHROW = 0xbf;
    public static final int OPCODE_CHECKCAST = 0xc0;
    public static final int OPCODE_INSTANCEOF = 0xc1;
    public static final int OPCODE_MONITORENTER = 0xc2;
    public static final int OPCODE_MONITOREXIT = 0xc3;
    public static final int OPCODE_WIDE = 0xc4;
    public static final int OPCODE_MULTIANEWARRAY = 0xc5;
    public static final int OPCODE_IFNULL = 0xc6;
    public static final int OPCODE_IFNONNULL = 0xc7;
    public static final int OPCODE_GOTO_W = 0xc8;
    public static final int OPCODE_JSR_W = 0xc9;
    public static final int OPCODE_BREAKPOINT = 0xca;
    public static final int OPCODE_IMPDEP1 = 0xfe;
    public static final int OPCODE_IMPDEP2 = 0xff;


    public static final int NEWARRAY_T_BOOLEAN = 4;
    public static final int NEWARRAY_T_CHAR = 5;
    public static final int NEWARRAY_T_FLOAT = 6;
    public static final int NEWARRAY_T_DOUBLE = 7;
    public static final int NEWARRAY_T_BYTE = 8;
    public static final int NEWARRAY_T_SHORT = 9;
    public static final int NEWARRAY_T_INT = 10;
    public static final int NEWARRAY_T_LONG = 11;

}
